[INFO] cloning repository https://github.com/MrSmiler/rusty-screeps
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MrSmiler/rusty-screeps" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrSmiler%2Frusty-screeps", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrSmiler%2Frusty-screeps'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 68ae84effb7855354342b66b5df5167c2d247b40
[INFO] fixing MrSmiler/rusty-screeps against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMrSmiler%2Frusty-screeps" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/MrSmiler/rusty-screeps
[INFO] finished tweaking git repo https://github.com/MrSmiler/rusty-screeps
[INFO] tweaked toml for git repo https://github.com/MrSmiler/rusty-screeps written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/MrSmiler/rusty-screeps on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/MrSmiler/rusty-screeps already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c
[INFO] running `Command { std: "docker" "start" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling zerocopy v0.8.51
[INFO] [stderr]    Compiling target-lexicon v0.12.16
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling erased-serde v0.4.10
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.15.3
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]     Checking bitflags v2.13.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling pyo3-build-config v0.22.6
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]     Checking disqualified v1.0.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking memchr v2.8.1
[INFO] [stderr]     Checking bevy_ptr v0.15.3
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking bevy_tasks v0.15.3
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling rusty-screeps v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Migrating build.rs from 2021 edition to 2024
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking unindent v0.2.4
[INFO] [stderr]     Checking colored v2.2.0
[INFO] [stderr] warning: rusty-screeps@0.1.0: Could not detect Python prefix. Set PYTHONHOME manually.
[INFO] [stderr]    Compiling pyo3-ffi v0.22.6
[INFO] [stderr]    Compiling pyo3-macros-backend v0.22.6
[INFO] [stderr]    Compiling pyo3 v0.22.6
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling bevy_macro_utils v0.15.3
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]    Compiling bevy_reflect_derive v0.15.3
[INFO] [stderr]    Compiling bevy_ecs_macros v0.15.3
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling pyo3-macros v0.22.6
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking bevy_utils v0.15.3
[INFO] [stderr]     Checking hashlink v0.9.1
[INFO] [stderr]     Checking bevy_reflect v0.15.3
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking bevy_ecs v0.15.4
[INFO] [stderr]     Checking rusqlite v0.31.0
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `rusty_screeps`
[INFO] [stderr]  --> src/scripting/api/base.rs
[INFO] [stderr]  ::: src/scripting/api/creep.rs
[INFO] [stderr]  ::: src/scripting/api/functions.rs
[INFO] [stderr]  ::: src/scripting/api/room.rs
[INFO] [stderr]   = cause: error: expected item, found `{`
[INFO] [stderr]              --> src/scripting/api/creep.rs:66:1
[INFO] [stderr]               |
[INFO] [stderr]            66 | { unsafe #[pymethods]}
[INFO] [stderr]               | ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stderr]              --> src/scripting/api/room.rs:24:1
[INFO] [stderr]               |
[INFO] [stderr]            24 | { unsafe #[pymethods]}
[INFO] [stderr]               | ^ expected item
[INFO] [stderr]               |
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/base.rs:42:20
[INFO] [stderr]               |
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stderr]               |                    ^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]               = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/base.rs:42:37
[INFO] [stderr]               |
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stderr]               |                                     ^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/base.rs:42:51
[INFO] [stderr]               |
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stderr]               |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:35
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                   ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:49
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                 ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:62
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                              ^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:81
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                                                 ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:23
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                       ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:32
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                                ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:43
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                                           ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/game_logic/world.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         ($e:expr) => {{
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 331 |         ($e:expr_2021) => {{
[INFO] [stdout]     |                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:38
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               --> src/scripting/api/functions.rs:196:21
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:37
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]                |
[INFO] [stderr]            196 | pub fn log(message: &str) -> i32 {
[INFO] [stderr]                |                     ^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:35
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                   ^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:42
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                          ^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:62
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                                              ^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 2 previous errors; 14 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:23
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                       ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:32
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:58
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:45
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                                             ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:213:22
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn nearest_enemy(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                      ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:227:26
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn most_wounded_ally(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:37
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:17
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:39
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:54
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:34
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:15
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:32
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:12
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:28
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:14
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:30
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:377:16
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn suicide(&mut self) -> i32 {
[INFO] [stdout]     |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:15
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:39
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:17
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:37
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:52
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                     ^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:51
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn name(&self) -> String {
[INFO] [stdout]    |             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn is_mine(&self) -> bool {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_neutral(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn is_hostile(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn __repr__(&self) -> String {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                   ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:62
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:81
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                       ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:32
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn log(message: &str) -> i32 {
[INFO] [stdout]     |                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                   ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:42
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                          ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:62
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/script_runner.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             std::env::set_var("PYTHONHOME", home);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]    = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]    |
[INFO] [stdout] 60 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 61 ~             unsafe { std::env::set_var("PYTHONHOME", home) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/server.rs from 2021 edition to 2024
[INFO] [stderr] error: errors present after applying fixes to crate `rusty_screeps`
[INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition
[INFO] [stdout]    --> src/game_logic/world.rs:331:13
[INFO] [stdout]     |
[INFO] [stdout] 331 |         ($e:expr) => {{
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>
[INFO] [stdout]     = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier
[INFO] [stdout]     |
[INFO] [stdout] 331 |         ($e:expr_2021) => {{
[INFO] [stdout]     |                 +++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  --> src/scripting/api/base.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/scripting/api/creep.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:38
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/scripting/api/functions.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]  ::: src/scripting/api/room.rs
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]   = cause: error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:37
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/scripting/api/creep.rs:66:1
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:23
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                       ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            66 | { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:32
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:58
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            error: expected item, found `{`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:45
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                                             ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/scripting/api/room.rs:24:1
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:213:22
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn nearest_enemy(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                      ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:227:26
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn most_wounded_ally(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            24 | { unsafe #[pymethods]}
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               | ^ expected item
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:37
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:17
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for a full list of items that can appear in modules, see <https://doc.rust-lang.org/reference/items.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:39
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:54
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:34
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/scripting/api/base.rs:42:20
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:15
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:32
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:12
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:28
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:14
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:30
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:377:16
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn suicide(&mut self) -> i32 {
[INFO] [stdout]     |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]              --> src/scripting/api/base.rs:42:37
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:15
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]               |
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stderr]               |                                     ^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/base.rs:42:51
[INFO] [stderr]               |
[INFO] [stderr]            42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stderr]               |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:35
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                   ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:49
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                 ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:62
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                              ^^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:25:81
[INFO] [stderr]               |
[INFO] [stderr]            25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stderr]               |                                                                                 ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:23
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                       ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:32
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                                ^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]              --> src/scripting/api/functions.rs:39:43
[INFO] [stderr]               |
[INFO] [stderr]            39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stderr]               |                                           ^^^ call to unsafe function
[INFO] [stderr]               |
[INFO] [stderr]               = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]               = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:196:21
[INFO] [stderr]                |
[INFO] [stderr]            196 | pub fn log(message: &str) -> i32 {
[INFO] [stderr]                |                     ^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:35
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                   ^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:42
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                          ^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stderr]               --> src/scripting/api/functions.rs:206:62
[INFO] [stderr]                |
[INFO] [stderr]            206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stderr]                |                                                              ^^^^ call to unsafe function
[INFO] [stderr]                |
[INFO] [stderr]                = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stderr]                = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            error: aborting due to 2 previous errors; 14 warnings emitted
[INFO] [stderr]            
[INFO] [stderr]            
[INFO] [stderr]            For more information about this error, try `rustc --explain E0133`.
[INFO] [stderr] help: to report this as a bug, open an issue at https://github.com/rust-lang/rust/issues, quoting the full output of this command
[INFO] [stderr] help: to possibly apply more fixes, pass in the `--broken-code` flag
[INFO] [stderr] note: original diagnostics will follow:
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:39
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:17
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:37
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:52
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                     ^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:51
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn name(&self) -> String {
[INFO] [stdout]    |             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn is_mine(&self) -> bool {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_neutral(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn is_hostile(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn __repr__(&self) -> String {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                   ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:62
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:81
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                       ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:32
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn log(message: &str) -> i32 {
[INFO] [stdout]     |                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                   ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:42
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                          ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:62
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/script_runner.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             std::env::set_var("PYTHONHOME", home);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/newly-unsafe-functions.html>
[INFO] [stdout]    = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
[INFO] [stdout]    |
[INFO] [stdout] 60 +             // FIXME: Audit that the environment access only happens in single-threaded code.
[INFO] [stdout] 61 ~             unsafe { std::env::set_var("PYTHONHOME", home) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/bin/server.rs:178:27
[INFO] [stdout]      |
[INFO] [stdout]  178 |       while let Some(msg) = receiver.next().await {
[INFO] [stdout]      |                      ---    ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                      |      |               |
[INFO] [stdout]      |                      |      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                      |      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                      |      this value will be stored in a temporary; let us call it `#84`
[INFO] [stdout]      |                      |      up until Edition 2021 `#84` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                      `msg` calls a custom destructor
[INFO] [stdout]      |                      `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  193 |                   let mut server = state.server.lock().await;
[INFO] [stdout]      |                       ----------   -------------------------
[INFO] [stdout]      |                       |            |                   |
[INFO] [stdout]      |                       |            |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       |            |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |            `__awaitee` calls a custom destructor
[INFO] [stdout]      |                       |            `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       `server` calls a custom destructor
[INFO] [stdout]      |                       `server` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  203 | /                     server.players.insert(id, Player {
[INFO] [stdout]  204 | |                         id, name: name.to_string(), script: String::new(),
[INFO] [stdout]  205 | |                         runner: None, home_room: None, memory: "{}".to_string(),
[INFO] [stdout]  206 | |                     });
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  214 |                   state.player_txs.lock().await.insert(pid, (tx.clone(), subs));
[INFO] [stdout]      |                   -------------------------------------------------------------
[INFO] [stdout]      |                   |                       |
[INFO] [stdout]      |                   |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                   |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                   `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  223 |                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                           ------------------------------------------------------
[INFO] [stdout]      |                           |         |                                      |
[INFO] [stdout]      |                           |         |                                      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      |                           |         |                                      `#12` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |         this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      |                           |         `#11` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  228 |                   let _ = tx.lock().await.send(Message::Text(overview.into())).await;
[INFO] [stdout]      |                           ----------------------------------------------------------
[INFO] [stdout]      |                           |         |                                          |
[INFO] [stdout]      |                           |         |                                          this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                           |         |                                          `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                           |         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      |                           `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      |                           `#14` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      |                           `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  240 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]      |                               |            |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      |                               |            `#19` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  252 |                               if let Some((_, subs)) = state.player_txs.lock().await.get_mut(&pid) { subs.insert(coord); }
[INFO] [stdout]      |                                                        -----------------------------
[INFO] [stdout]      |                                                        |                       |
[INFO] [stdout]      |                                                        |                       this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]      |                                                        |                       `#23` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                        this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]      |                                                        `#21` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                        this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]      |                                                        `#22` will be dropped later as of Edition 2024
[INFO] [stdout]  253 |                               let resp = format!(r#"{{"type":"claim_ok","col":{},"row":{}}}"#, col, row);
[INFO] [stdout]  254 |                               let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                       ------------------------------------------------------
[INFO] [stdout]      |                                       |         |                                      |
[INFO] [stdout]      |                                       |         |                                      this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]      |                                       |         |                                      `#28` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       |         this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]      |                                       |         `#27` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]      |                                       `#24` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]      |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]      |                                       `#26` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  257 |                               let _ = tx.lock().await.send(Message::Text(r#"{"type":"claim_denied"}"#.to_string().into())).await;
[INFO] [stdout]      |                                       ------------------------------------------------------------------------------------------
[INFO] [stdout]      |                                       |         |                                                                          |
[INFO] [stdout]      |                                       |         |                                                                          this value will be stored in a temporary; let us call it `#33`
[INFO] [stdout]      |                                       |         |                                                                          `#33` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       |         this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]      |                                       |         `#32` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]      |                                       `#29` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]      |                                       `#30` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]      |                                       `#31` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  269 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#36`
[INFO] [stdout]      |                               |            |                   `#36` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#35`
[INFO] [stdout]      |                               |            `#35` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#34`
[INFO] [stdout]      |                               `#34` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  275 |                               let has_base = room.world.query::<&SpawnMarker>().iter(&room.world).count() > 0;
[INFO] [stdout]      |                                              ----------------------------------
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#37`
[INFO] [stdout]      |                                              `#37` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  283 |                                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                           ------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                      |
[INFO] [stdout]      |                                           |         |                                      this value will be stored in a temporary; let us call it `#42`
[INFO] [stdout]      |                                           |         |                                      `#42` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#41`
[INFO] [stdout]      |                                           |         `#41` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#38`
[INFO] [stdout]      |                                           `#38` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#39`
[INFO] [stdout]      |                                           `#39` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#40`
[INFO] [stdout]      |                                           `#40` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  287 |                                   let _ = tx.lock().await.send(Message::Text(r#"{"type":"base_denied"}"#.to_string().into())).await;
[INFO] [stdout]      |                                           -----------------------------------------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                                                         |
[INFO] [stdout]      |                                           |         |                                                                         this value will be stored in a temporary; let us call it `#47`
[INFO] [stdout]      |                                           |         |                                                                         `#47` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#46`
[INFO] [stdout]      |                                           |         `#46` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#43`
[INFO] [stdout]      |                                           `#43` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#44`
[INFO] [stdout]      |                                           `#44` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#45`
[INFO] [stdout]      |                                           `#45` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  296 |                   let mut server = state.server.lock().await;
[INFO] [stdout]      |                       ----------   -------------------------
[INFO] [stdout]      |                       |            |                   |
[INFO] [stdout]      |                       |            |                   this value will be stored in a temporary; let us call it `#50`
[INFO] [stdout]      |                       |            |                   `#50` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |            this value will be stored in a temporary; let us call it `#49`
[INFO] [stdout]      |                       |            `#49` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#48`
[INFO] [stdout]      |                       `#48` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  309 |                                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                           ------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                      |
[INFO] [stdout]      |                                           |         |                                      this value will be stored in a temporary; let us call it `#55`
[INFO] [stdout]      |                                           |         |                                      `#55` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#54`
[INFO] [stdout]      |                                           |         `#54` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#51`
[INFO] [stdout]      |                                           `#51` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#52`
[INFO] [stdout]      |                                           `#52` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#53`
[INFO] [stdout]      |                                           `#53` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  323 |                           let mut txs = state.player_txs.lock().await;
[INFO] [stdout]      |                               -------   -----------------------------
[INFO] [stdout]      |                               |         |                       |
[INFO] [stdout]      |                               |         |                       this value will be stored in a temporary; let us call it `#57`
[INFO] [stdout]      |                               |         |                       `#57` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |         this value will be stored in a temporary; let us call it `#56`
[INFO] [stdout]      |                               |         `#56` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               `txs` calls a custom destructor
[INFO] [stdout]      |                               `txs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  333 |                           let mut txs = state.player_txs.lock().await;
[INFO] [stdout]      |                               -------   -----------------------------
[INFO] [stdout]      |                               |         |                       |
[INFO] [stdout]      |                               |         |                       this value will be stored in a temporary; let us call it `#60`
[INFO] [stdout]      |                               |         |                       `#60` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |         this value will be stored in a temporary; let us call it `#59`
[INFO] [stdout]      |                               |         `#59` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#58`
[INFO] [stdout]      |                               `#58` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  347 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#63`
[INFO] [stdout]      |                               |            |                   `#63` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#62`
[INFO] [stdout]      |                               |            `#62` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#61`
[INFO] [stdout]      |                               `#61` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  369 |                               let mut server = state.server.lock().await;
[INFO] [stdout]      |                                   ----------   -------------------------
[INFO] [stdout]      |                                   |            |                   |
[INFO] [stdout]      |                                   |            |                   this value will be stored in a temporary; let us call it `#66`
[INFO] [stdout]      |                                   |            |                   `#66` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   |            this value will be stored in a temporary; let us call it `#65`
[INFO] [stdout]      |                                   |            `#65` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#64`
[INFO] [stdout]      |                                   `#64` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  391 |                               let mut server = state.server.lock().await;
[INFO] [stdout]      |                                   ----------   -------------------------
[INFO] [stdout]      |                                   |            |                   |
[INFO] [stdout]      |                                   |            |                   this value will be stored in a temporary; let us call it `#69`
[INFO] [stdout]      |                                   |            |                   `#69` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   |            this value will be stored in a temporary; let us call it `#68`
[INFO] [stdout]      |                                   |            `#68` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#67`
[INFO] [stdout]      |                                   `#67` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  420 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#72`
[INFO] [stdout]      |                               |            |                   `#72` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#71`
[INFO] [stdout]      |                               |            `#71` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#70`
[INFO] [stdout]      |                               `#70` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  449 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#75`
[INFO] [stdout]      |                               |            |                   `#75` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#74`
[INFO] [stdout]      |                               |            `#74` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#73`
[INFO] [stdout]      |                               `#73` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  454 |                                   let mut q = room.world.query::<&Position>();
[INFO] [stdout]      |                                       -----
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `q` calls a custom destructor
[INFO] [stdout]      |                                       `q` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  499 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#78`
[INFO] [stdout]      |                               |            |                   `#78` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#77`
[INFO] [stdout]      |                               |            `#77` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#76`
[INFO] [stdout]      |                               `#76` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  503 |                                   let mut q = room.world.query::<&Position>();
[INFO] [stdout]      |                                       -----
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#79`
[INFO] [stdout]      |                                       `#79` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  526 |                       let mut server = state.server.lock().await;
[INFO] [stdout]      |                           ----------   -------------------------
[INFO] [stdout]      |                           |            |                   |
[INFO] [stdout]      |                           |            |                   this value will be stored in a temporary; let us call it `#82`
[INFO] [stdout]      |                           |            |                   `#82` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |            this value will be stored in a temporary; let us call it `#81`
[INFO] [stdout]      |                           |            `#81` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#80`
[INFO] [stdout]      |                           `#80` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  529 |                           let mut q = room.world.query::<&mut SpawnEnergy>();
[INFO] [stdout]      |                               -----
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#83`
[INFO] [stdout]      |                               `#83` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  539 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#84` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `server` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pyo3-0.22.6/src/instance.rs:1859:1
[INFO] [stdout]      |
[INFO] [stdout] 1859 | impl<T> Drop for Py<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]      |
[INFO] [stdout]  199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#20` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#21` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#23` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#25` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#27` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#30` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#33` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#34` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#36` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#37` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#38` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#39` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#41` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#42` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#43` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#44` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#46` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#47` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#48` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#50` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#51` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#52` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#54` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#55` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `txs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#57` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#58` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#60` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#61` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#63` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#64` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#66` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#67` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#69` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#70` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#72` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#73` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#75` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `q` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#76` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#78` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#79` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#80` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#82` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#83` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/bin/server.rs:178:27
[INFO] [stdout]      |
[INFO] [stdout]  178 |       while let Some(msg) = receiver.next().await {
[INFO] [stdout]      |                      ---    ^^^^^^^^^^^^^^^^-----
[INFO] [stdout]      |                      |      |               |
[INFO] [stdout]      |                      |      |               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                      |      |               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                      |      this value will be stored in a temporary; let us call it `#84`
[INFO] [stdout]      |                      |      up until Edition 2021 `#84` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                      `msg` calls a custom destructor
[INFO] [stdout]      |                      `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  193 |                   let mut server = state.server.lock().await;
[INFO] [stdout]      |                       ----------   -------------------------
[INFO] [stdout]      |                       |            |                   |
[INFO] [stdout]      |                       |            |                   this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                       |            |                   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |            `__awaitee` calls a custom destructor
[INFO] [stdout]      |                       |            `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       `server` calls a custom destructor
[INFO] [stdout]      |                       `server` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  203 | /                     server.players.insert(id, Player {
[INFO] [stdout]  204 | |                         id, name: name.to_string(), script: String::new(),
[INFO] [stdout]  205 | |                         runner: None, home_room: None, memory: "{}".to_string(),
[INFO] [stdout]  206 | |                     });
[INFO] [stdout]      | |                      -
[INFO] [stdout]      | |                      |
[INFO] [stdout]      | |______________________this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  214 |                   state.player_txs.lock().await.insert(pid, (tx.clone(), subs));
[INFO] [stdout]      |                   -------------------------------------------------------------
[INFO] [stdout]      |                   |                       |
[INFO] [stdout]      |                   |                       this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                   |                       `#7` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                   `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                   this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                   `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  223 |                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                           ------------------------------------------------------
[INFO] [stdout]      |                           |         |                                      |
[INFO] [stdout]      |                           |         |                                      this value will be stored in a temporary; let us call it `#12`
[INFO] [stdout]      |                           |         |                                      `#12` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |         this value will be stored in a temporary; let us call it `#11`
[INFO] [stdout]      |                           |         `#11` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]      |                           `#8` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]      |                           `#9` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#10`
[INFO] [stdout]      |                           `#10` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  228 |                   let _ = tx.lock().await.send(Message::Text(overview.into())).await;
[INFO] [stdout]      |                           ----------------------------------------------------------
[INFO] [stdout]      |                           |         |                                          |
[INFO] [stdout]      |                           |         |                                          this value will be stored in a temporary; let us call it `#17`
[INFO] [stdout]      |                           |         |                                          `#17` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |         this value will be stored in a temporary; let us call it `#16`
[INFO] [stdout]      |                           |         `#16` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#13`
[INFO] [stdout]      |                           `#13` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#14`
[INFO] [stdout]      |                           `#14` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#15`
[INFO] [stdout]      |                           `#15` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  240 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#20`
[INFO] [stdout]      |                               |            |                   `#20` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#19`
[INFO] [stdout]      |                               |            `#19` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#18`
[INFO] [stdout]      |                               `#18` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  252 |                               if let Some((_, subs)) = state.player_txs.lock().await.get_mut(&pid) { subs.insert(coord); }
[INFO] [stdout]      |                                                        -----------------------------
[INFO] [stdout]      |                                                        |                       |
[INFO] [stdout]      |                                                        |                       this value will be stored in a temporary; let us call it `#23`
[INFO] [stdout]      |                                                        |                       `#23` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                        this value will be stored in a temporary; let us call it `#21`
[INFO] [stdout]      |                                                        `#21` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                                        this value will be stored in a temporary; let us call it `#22`
[INFO] [stdout]      |                                                        `#22` will be dropped later as of Edition 2024
[INFO] [stdout]  253 |                               let resp = format!(r#"{{"type":"claim_ok","col":{},"row":{}}}"#, col, row);
[INFO] [stdout]  254 |                               let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                       ------------------------------------------------------
[INFO] [stdout]      |                                       |         |                                      |
[INFO] [stdout]      |                                       |         |                                      this value will be stored in a temporary; let us call it `#28`
[INFO] [stdout]      |                                       |         |                                      `#28` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       |         this value will be stored in a temporary; let us call it `#27`
[INFO] [stdout]      |                                       |         `#27` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#24`
[INFO] [stdout]      |                                       `#24` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#25`
[INFO] [stdout]      |                                       `#25` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#26`
[INFO] [stdout]      |                                       `#26` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  257 |                               let _ = tx.lock().await.send(Message::Text(r#"{"type":"claim_denied"}"#.to_string().into())).await;
[INFO] [stdout]      |                                       ------------------------------------------------------------------------------------------
[INFO] [stdout]      |                                       |         |                                                                          |
[INFO] [stdout]      |                                       |         |                                                                          this value will be stored in a temporary; let us call it `#33`
[INFO] [stdout]      |                                       |         |                                                                          `#33` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       |         this value will be stored in a temporary; let us call it `#32`
[INFO] [stdout]      |                                       |         `#32` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#29`
[INFO] [stdout]      |                                       `#29` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#30`
[INFO] [stdout]      |                                       `#30` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#31`
[INFO] [stdout]      |                                       `#31` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  269 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#36`
[INFO] [stdout]      |                               |            |                   `#36` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#35`
[INFO] [stdout]      |                               |            `#35` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#34`
[INFO] [stdout]      |                               `#34` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  275 |                               let has_base = room.world.query::<&SpawnMarker>().iter(&room.world).count() > 0;
[INFO] [stdout]      |                                              ----------------------------------
[INFO] [stdout]      |                                              |
[INFO] [stdout]      |                                              this value will be stored in a temporary; let us call it `#37`
[INFO] [stdout]      |                                              `#37` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  283 |                                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                           ------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                      |
[INFO] [stdout]      |                                           |         |                                      this value will be stored in a temporary; let us call it `#42`
[INFO] [stdout]      |                                           |         |                                      `#42` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#41`
[INFO] [stdout]      |                                           |         `#41` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#38`
[INFO] [stdout]      |                                           `#38` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#39`
[INFO] [stdout]      |                                           `#39` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#40`
[INFO] [stdout]      |                                           `#40` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  287 |                                   let _ = tx.lock().await.send(Message::Text(r#"{"type":"base_denied"}"#.to_string().into())).await;
[INFO] [stdout]      |                                           -----------------------------------------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                                                         |
[INFO] [stdout]      |                                           |         |                                                                         this value will be stored in a temporary; let us call it `#47`
[INFO] [stdout]      |                                           |         |                                                                         `#47` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#46`
[INFO] [stdout]      |                                           |         `#46` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#43`
[INFO] [stdout]      |                                           `#43` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#44`
[INFO] [stdout]      |                                           `#44` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#45`
[INFO] [stdout]      |                                           `#45` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  296 |                   let mut server = state.server.lock().await;
[INFO] [stdout]      |                       ----------   -------------------------
[INFO] [stdout]      |                       |            |                   |
[INFO] [stdout]      |                       |            |                   this value will be stored in a temporary; let us call it `#50`
[INFO] [stdout]      |                       |            |                   `#50` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       |            this value will be stored in a temporary; let us call it `#49`
[INFO] [stdout]      |                       |            `#49` will be dropped later as of Edition 2024
[INFO] [stdout]      |                       this value will be stored in a temporary; let us call it `#48`
[INFO] [stdout]      |                       `#48` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  309 |                                   let _ = tx.lock().await.send(Message::Text(resp.into())).await;
[INFO] [stdout]      |                                           ------------------------------------------------------
[INFO] [stdout]      |                                           |         |                                      |
[INFO] [stdout]      |                                           |         |                                      this value will be stored in a temporary; let us call it `#55`
[INFO] [stdout]      |                                           |         |                                      `#55` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           |         this value will be stored in a temporary; let us call it `#54`
[INFO] [stdout]      |                                           |         `#54` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#51`
[INFO] [stdout]      |                                           `#51` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#52`
[INFO] [stdout]      |                                           `#52` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                           this value will be stored in a temporary; let us call it `#53`
[INFO] [stdout]      |                                           `#53` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  323 |                           let mut txs = state.player_txs.lock().await;
[INFO] [stdout]      |                               -------   -----------------------------
[INFO] [stdout]      |                               |         |                       |
[INFO] [stdout]      |                               |         |                       this value will be stored in a temporary; let us call it `#57`
[INFO] [stdout]      |                               |         |                       `#57` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |         this value will be stored in a temporary; let us call it `#56`
[INFO] [stdout]      |                               |         `#56` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               `txs` calls a custom destructor
[INFO] [stdout]      |                               `txs` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  333 |                           let mut txs = state.player_txs.lock().await;
[INFO] [stdout]      |                               -------   -----------------------------
[INFO] [stdout]      |                               |         |                       |
[INFO] [stdout]      |                               |         |                       this value will be stored in a temporary; let us call it `#60`
[INFO] [stdout]      |                               |         |                       `#60` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |         this value will be stored in a temporary; let us call it `#59`
[INFO] [stdout]      |                               |         `#59` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#58`
[INFO] [stdout]      |                               `#58` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  347 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#63`
[INFO] [stdout]      |                               |            |                   `#63` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#62`
[INFO] [stdout]      |                               |            `#62` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#61`
[INFO] [stdout]      |                               `#61` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  369 |                               let mut server = state.server.lock().await;
[INFO] [stdout]      |                                   ----------   -------------------------
[INFO] [stdout]      |                                   |            |                   |
[INFO] [stdout]      |                                   |            |                   this value will be stored in a temporary; let us call it `#66`
[INFO] [stdout]      |                                   |            |                   `#66` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   |            this value will be stored in a temporary; let us call it `#65`
[INFO] [stdout]      |                                   |            `#65` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#64`
[INFO] [stdout]      |                                   `#64` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  391 |                               let mut server = state.server.lock().await;
[INFO] [stdout]      |                                   ----------   -------------------------
[INFO] [stdout]      |                                   |            |                   |
[INFO] [stdout]      |                                   |            |                   this value will be stored in a temporary; let us call it `#69`
[INFO] [stdout]      |                                   |            |                   `#69` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   |            this value will be stored in a temporary; let us call it `#68`
[INFO] [stdout]      |                                   |            `#68` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                   this value will be stored in a temporary; let us call it `#67`
[INFO] [stdout]      |                                   `#67` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  420 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#72`
[INFO] [stdout]      |                               |            |                   `#72` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#71`
[INFO] [stdout]      |                               |            `#71` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#70`
[INFO] [stdout]      |                               `#70` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  449 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#75`
[INFO] [stdout]      |                               |            |                   `#75` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#74`
[INFO] [stdout]      |                               |            `#74` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#73`
[INFO] [stdout]      |                               `#73` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  454 |                                   let mut q = room.world.query::<&Position>();
[INFO] [stdout]      |                                       -----
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       `q` calls a custom destructor
[INFO] [stdout]      |                                       `q` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  499 |                           let mut server = state.server.lock().await;
[INFO] [stdout]      |                               ----------   -------------------------
[INFO] [stdout]      |                               |            |                   |
[INFO] [stdout]      |                               |            |                   this value will be stored in a temporary; let us call it `#78`
[INFO] [stdout]      |                               |            |                   `#78` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               |            this value will be stored in a temporary; let us call it `#77`
[INFO] [stdout]      |                               |            `#77` will be dropped later as of Edition 2024
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#76`
[INFO] [stdout]      |                               `#76` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  503 |                                   let mut q = room.world.query::<&Position>();
[INFO] [stdout]      |                                       -----
[INFO] [stdout]      |                                       |
[INFO] [stdout]      |                                       this value will be stored in a temporary; let us call it `#79`
[INFO] [stdout]      |                                       `#79` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  526 |                       let mut server = state.server.lock().await;
[INFO] [stdout]      |                           ----------   -------------------------
[INFO] [stdout]      |                           |            |                   |
[INFO] [stdout]      |                           |            |                   this value will be stored in a temporary; let us call it `#82`
[INFO] [stdout]      |                           |            |                   `#82` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           |            this value will be stored in a temporary; let us call it `#81`
[INFO] [stdout]      |                           |            `#81` will be dropped later as of Edition 2024
[INFO] [stdout]      |                           this value will be stored in a temporary; let us call it `#80`
[INFO] [stdout]      |                           `#80` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  529 |                           let mut q = room.world.query::<&mut SpawnEnergy>();
[INFO] [stdout]      |                               -----
[INFO] [stdout]      |                               |
[INFO] [stdout]      |                               this value will be stored in a temporary; let us call it `#83`
[INFO] [stdout]      |                               `#83` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  539 |       }
[INFO] [stdout]      |       - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#84` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `msg` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `server` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/pyo3-0.22.6/src/instance.rs:1859:1
[INFO] [stdout]      |
[INFO] [stdout] 1859 | impl<T> Drop for Py<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-util-0.3.32/src/lock/bilock.rs:199:1
[INFO] [stdout]      |
[INFO] [stdout]  199 | impl<T> Drop for Inner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#11` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#12` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#13` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#14` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#16` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#17` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#18` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#20` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#21` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#23` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#24` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#25` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#27` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#28` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#29` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#30` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#32` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#33` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#34` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#36` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#37` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#38` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#39` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#41` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#42` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]      = note: `#43` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#44` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#46` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#47` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#48` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#50` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#51` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#52` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#54` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#55` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `txs` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#57` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#58` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#60` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#61` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#63` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#64` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#66` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#67` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#69` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#70` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#72` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#73` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#75` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `q` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#76` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#78` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#79` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#80` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#82` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.52.3/src/sync/mutex.rs:964:1
[INFO] [stdout]      |
[INFO] [stdout]  964 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#83` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/fixedbitset-0.5.7/src/lib.rs:1051:1
[INFO] [stdout]      |
[INFO] [stdout] 1051 | impl Drop for FixedBitSet {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.04s
[INFO] [stderr] crater-edition-check: rusty-screeps v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]    Compiling rusty-screeps v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: rusty-screeps@0.1.0: Could not detect Python prefix. Set PYTHONHOME manually.
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:38
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:37
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:23
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                       ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:32
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:58
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:45
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                                             ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:213:22
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn nearest_enemy(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                      ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:227:26
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn most_wounded_ally(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:37
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:17
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:39
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:54
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:34
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:15
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:32
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:12
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:28
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:14
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:30
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:377:16
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn suicide(&mut self) -> i32 {
[INFO] [stdout]     |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:15
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:39
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:17
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:37
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:52
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                     ^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:51
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn name(&self) -> String {
[INFO] [stdout]    |             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn is_mine(&self) -> bool {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_neutral(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn is_hostile(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn __repr__(&self) -> String {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                   ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:62
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:81
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                       ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:32
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn log(message: &str) -> i32 {
[INFO] [stdout]     |                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                   ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:42
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                          ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:62
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/script_runner.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             std::env::set_var("PYTHONHOME", home);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] warning: rusty-screeps@0.1.0: Could not detect Python prefix. Set PYTHONHOME manually.
[INFO] [stderr] error: could not compile `rusty-screeps` (lib) due to 1 previous error; 61 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:68:38
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn harvest(&mut self, source_id: u64) -> i32 {
[INFO] [stdout]    |                                      ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/creep.rs:97:37
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn move_to(&mut self, x: u8, y: u8, room: Option<&Bound<'_, PyAny>>, range: u8) -> i32 {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:23
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                       ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:156:42
[INFO] [stdout]     |
[INFO] [stdout] 156 |     fn move_to_target(&mut self, target: &Bound<'_, PyAny>, range: u8) -> PyResult<i32> {
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:17
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:165:32
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn range_to(&self, target: &Bound<'_, PyAny>) -> PyResult<i32> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                 ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:32
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:172:58
[INFO] [stdout]     |
[INFO] [stdout] 172 |     fn in_range(&self, target: &Bound<'_, PyAny>, range: i32) -> PyResult<bool> {
[INFO] [stdout]     |                                                          ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:16
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:179:45
[INFO] [stdout]     |
[INFO] [stdout] 179 |     fn nearest(&self, py: Python<'_>, kind: &str) -> Option<PyObject> {
[INFO] [stdout]     |                                             ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:213:22
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn nearest_enemy(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                      ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:227:26
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn most_wounded_ally(&self, py: Python<'_>) -> Option<PyObject> {
[INFO] [stdout]     |                          ^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:15
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:238:37
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn attack(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:17
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:39
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:255:54
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn transfer(&mut self, target_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                      ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:316:34
[INFO] [stdout]     |
[INFO] [stdout] 316 |     fn build(&mut self, site_id: u64) -> i32 {
[INFO] [stdout]     |                                  ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:15
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |     fn repair(&mut self, target_id: u64) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:354:32
[INFO] [stdout]     |
[INFO] [stdout] 354 |     fn say(&mut self, message: &str) -> i32 {
[INFO] [stdout]     |                                ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:12
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:362:28
[INFO] [stdout]     |
[INFO] [stdout] 362 |     fn tag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                            ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:14
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |              ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:370:30
[INFO] [stdout]     |
[INFO] [stdout] 370 |     fn untag(&mut self, tag: &str) -> i32 {
[INFO] [stdout]     |                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:377:16
[INFO] [stdout]     |
[INFO] [stdout] 377 |     fn suicide(&mut self) -> i32 {
[INFO] [stdout]     |                ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/scripting/api/creep.rs:66:1
[INFO] [stdout]     |
[INFO] [stdout]  66 | #[pymethods]
[INFO] [stdout]     | ^^^^^^^^^^^^
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:13
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |             ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:384:34
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn drop(&mut self, resource: &str) -> i32 {
[INFO] [stdout]     |                                  ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:15
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |               ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:399:39
[INFO] [stdout]     |
[INFO] [stdout] 399 |     fn pickup(&mut self, resource_id: u64) -> i32 {
[INFO] [stdout]     |                                       ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:17
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                 ^^^^^^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:37
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                     ^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/creep.rs:413:52
[INFO] [stdout]     |
[INFO] [stdout] 413 |     fn withdraw(&mut self, from_id: u64, resource: &str) -> i32 {
[INFO] [stdout]     |                                                    ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:20
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                    ^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:37
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                     ^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/base.rs:42:51
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn spawn_creep(&mut self, name: String, body: Vec<String>, direction: Option<u8>, tags: Option<Vec<String>>) -> i32 {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn name(&self) -> String {
[INFO] [stdout]    |             ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:34:16
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn is_mine(&self) -> bool {
[INFO] [stdout]    |                ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn is_neutral(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn is_hostile(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:20
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                    ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                              ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn get_terrain(&self, x: u8, y: u8) -> String {
[INFO] [stdout]    |                                     ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::pymethods::BoundRef::<'a, 'py, pyo3::PyAny>::ref_from_ptr` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/room.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 |     fn __repr__(&self) -> String {
[INFO] [stdout]    |                 ^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]   --> src/scripting/api/room.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | #[pymethods]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]    = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:35
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                   ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:49
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:62
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                              ^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:25:81
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn _set_behavior(specificity: u8, priority: i32, yield_: bool, behavior_id: u32) {
[INFO] [stdout]    |                                                                                 ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                       ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:32
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                ^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/api/functions.rs:39:43
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn _set_room(col: u8, row: u8, owner: u32) {
[INFO] [stdout]    |                                           ^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:196:21
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn log(message: &str) -> i32 {
[INFO] [stdout]     |                     ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:35
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                   ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:42
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                          ^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `pyo3::impl_::extract_argument::unwrap_required_argument` is unsafe and requires unsafe block
[INFO] [stdout]    --> src/scripting/api/functions.rs:206:62
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn place_construction_site(x: u8, y: u8, structure_type: &str) -> i32 {
[INFO] [stdout]     |                                                              ^^^^ call to unsafe function
[INFO] [stdout]     |
[INFO] [stdout]     = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block
[INFO] [stdout]   --> src/scripting/script_runner.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |             std::env::set_var("PYTHONHOME", home);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scripting/script_runner.rs:610:13
[INFO] [stdout]     |
[INFO] [stdout] 610 |         let mut b = room_world(RoomId::new(1, 0), None, 1, 1, 10, 10);
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/scripting/script_runner.rs:626:13
[INFO] [stdout]     |
[INFO] [stdout] 626 |         let mut a = room_world(RoomId::new(0, 0), Some(1), 1, 1, 5, 5);
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] warning: rusty-screeps@0.1.0: Could not detect Python prefix. Set PYTHONHOME manually.
[INFO] [stderr] error: could not compile `rusty-screeps` (lib test) due to 1 previous error; 63 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c", kill_on_drop: false }`
[INFO] [stdout] 37df58d60257b51c9aac874ac87fc52dd76a107e214ff57c0dd001c450eb1e1c
